1. Field of the Invention
The present invention generally relates to databases and more particularly to a relational database which utilizes binary large objects and an object registry table in lieu of conventional data columns.
2. Description of the Related Art
Databases are highly useful for organizing many types of information. For example, production items can be tested and the test information stored in a database. The semiconductor manufacturing environment is characterized by numerous part numbers running in the fabricator at the same time. While all of these parts typically belong to the same product technology group, they all differ in some way. This leads to the need for different test requirements for all products.
Conventional systems have different test requirements that translate into different storage requirements for a database system. More specifically, one product may test N parameters while another tests M parameters. The situation becomes more complex when the contents of N are not the same as the contents of M. If one parameter is different, then there are M+1 different parameters that need to be accounted for in the database. Taking this progression out to K parts, there could be M*K different parameters that require storage.
In a classical relational model, this would require tables with M*K columns. This quickly becomes unmanageable and extends beyond the capabilities of conventional relational database management systems.
An additional problem of conventional relational database systems is the utilization factor associated with each row of the data table. If a row is only using {fraction (1/10)} of the columns defined, then that row has a utilization factor of 0.1(M*K). There is a 90% waste of space in this row. This problem becomes severe as products mature and testing is reduced. The tables cannot change and thus the utilization factor goes down and the waste goes up.
This problem has been addressed before through different approaches. The 100% object oriented approach uses an object oriented database technology, where the collections of test values are stored as objects. In this system each test measurement is treated as an object. Measurement objects inherit from chip objects, which inherit from wafer objects, which inherit from lot objects. This creates an object inheritance structure where the lot is at the top and the test measurement is at the bottom. In such a conventional system all information about the measurement is carried down from the lot class, which creates a large amount of storage overhead for each test measurement.
Another conventional approach is the 100% relational approach which uses relational database technology and stores collections of data values as columns in tables. This technique uses meta-data tables to describe the columns in the data tables, which have generic names.
However, there are several problems with the conventional relational approach. First, the database is difficult to change, for example, if the nature of the incoming data exceeds the capabilities of the tables. Secondly, such a conventional system is very inefficient. A table that has 100 columns must use all 100 columns to be space efficient. If rows are created that do not use all data columns, as is typical in the semiconductor environment, then space is being wasted. The conventional relational approach also does not have any capability to distribute the data across multiple databases on multiple physical systems.
It is, therefore, an object of the present invention to provide a structure and method for storing chip data in database (e.g., DB2) tables as Binary Large Objects (BLOB""s) and maintaining descriptive information of the BLOB (meta-data) in separated tables in the database. The meta-data describes the sequence of test parameters in a BLOB for a particular collection of tests performed on a particular device tested.
More specifically, the invention comprises an automated data processing system including a relational database engine storage devices having a database table, registry and binary large objects created and updated by the relational database engine and a user defined function engine retrieving data elements stored in the binary large objects. The registry includes data element classifications. The database table includes relational information of the data elements, the data element classifications and pointers to the binary large objects, and the relational database engine creates and updates the binary large objects based on the database table and the registry.
The binary large objects may comprise aggregate objects having a plurality of similar data elements or composite objects having a plurality of dissimilar data elements. The binary large objects have distinctive sizes based on corresponding ones of the data elements and the data element classification includes these distinctive sizes.
The database table has a current structure and the system is dynamically extended by defining additional data element classifications or by expanding a size of at least one of the binary large objects and maintaining the current structure of the database table.
The processing system may be a distributed network and the storage device would then be a plurality of network servers. Such a distributed network could include a data director for routing data elements and user requests.
The invention also includes a manual and computer implemented method of organizing data elements in a relational database, comprising storing relational information about the data elements and data element classification in a database table, defining the classification information in a registry, storing the data elements separate from the database table and the registry in objects; and including pointers to the objects in the database table.
In another embodiment, the invention comprises a relational database management system having objects storing data elements, a database table storing relational information of the data elements and pointers pointing to the objects (the database table does not include the data elements), and a registry having information about data element classification and data element location.
The invention supports multiple collections of test data, maintains descriptive information for data collections and does not use table columns to store test data. For example, the invention stores chip data in DB2 tables as Binary Large Objects (BLOB""s) and maintains descriptive information (meta-data) in separate tables in the database. Additionally, the invention includes a small database footprint and is dynamically extendable without any database table structure changes. With the invention, the database maintenance is reduced while storage is optimized. Any data type, including those beyond the scope of data base management systems (DBMS), can be stored and retrieved with the invention and the database table cardinality is reduced.
The invention is especially useful in environments which involve a large number of diverse products. The invention permits rapid deployment in new areas without having to change the structure of the database.